点云学习笔记4

您所在的位置:网站首页 激光雷达 使用 点云学习笔记4

点云学习笔记4

2023-04-14 22:56| 来源: 网络整理| 查看: 265

 

点云学习笔记4——robosense激光雷达使用教程 一、robosense使用手册 二、robosense使用教程 2.1. 环境准备 2.2. 代码下载 2.3、观看实时点云数据例子 2.3.1、建立工作空间 2.3.2、复制源码到工作空间 2.3.3、配置ip——设置电脑的静态ip 2.3.4、执行以下命令即可编译&运行 2.3.5、通过“rviz”来观看点云 2.3.6、参数说明 三、录制点云离线包: 四、 离线解码 五、参考:

 

一、robosense使用手册

点云学习笔记4——robosense激光雷达使用教程_点云官方网站:https://www.robosense.ai/en/resources

二、robosense使用教程 2.1. 环境准备 1.Ubuntu 18.04 系统 2.ROS melodic

安装ros环境见我另外一篇文章:ros学习笔记1——Ubuntu18.04安装ROS Melodic

2.2. 代码下载

代码地址:https://github.com/RoboSense-LiDAR/rslidar_sdk可以直接下载sdk包:(用户可以直接访问 rslidar_sdk_release 下载最新版本的rslidar_sdk. 请下载 rslidar_sdk.tar.gz 压缩包, 不要下载Source code, 因为Source code压缩包内不包含子模块rs_driver的代码, 用户还需自行下载rs_driver的代码放入其中才行。)

https://github.com/RoboSense-LiDAR/rslidar_sdk/releases点云学习笔记4——robosense激光雷达使用教程_离线_02

2.3、观看实时点云数据例子

官方中文使用教程:https://github.com/RoboSense-LiDAR/rslidar_sdk/blob/release/README_CN.md

工程简介:rslidar_sdk 为速腾聚创在Ubuntu环境下的雷达驱动软件包,包括了雷达驱动内核, ROS拓展功能,ROS2拓展功能,Protobuf-UDP通信拓展功能。对于没有二次开发需求的用户,或是想直接使用ROS或ROS2进行二次开发的用户,可直接使用本软件包, 配合ROS或ROS2自带的RVIZ可视化工具即可查看点云。 对于有更深一步二次开发需求,想将雷达驱动集成到自己工程内的客户, 请参考雷达驱动内核的相关文档,直接使用内核rs_driver进行二次开发。

2.3.1、建立工作空间 mkdir -p ~/robosense_ws/src 2.3.2、复制源码到工作空间

将下载的sdk压缩比复制到~/robosense_ws/src目录下,并解压。相对位置如下:

└── robosense_ws └── src └── rslidar_sdk

先做以下修改。

(1) 打开工程内的CMakeLists.txt文件,将文件顶部的set(COMPILE_METHOD ORIGINAL)改为set(COMPILE_METHOD CATKIN)。

(2) 将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml。

2.3.3、配置ip——设置电脑的静态ip

默认情况下,RSLIDAR雷达设备ip设置为192.168.1.200,而PC ip则设置为192.168.1.102;同时默认MSOP端口为6699,DIFOP端口为7788. 所以需将PC ip设置为静态ip 192.168.1.102才能和雷达通信。

激光雷达网线连接电脑并接入电源,进入ubuntu系统设置settings,配置有线网络参数,获取方式改为手动。地址:192.168.1.102 掩码:255.255.255.0网关:192.168.1.1 DNS:223.5.5.5

点云学习笔记4——robosense激光雷达使用教程_点云_03设置完成后,可以ping一下激光雷达的ip地址,比如我的激光雷达的地址是192.168.1.199打开终端输入:ping 192.168.1.199能够ping通,则说明网络连接正常。

在 /home/xxxxx/robosense_ws/src/rslidar_sdk/config 目录下打开config.yaml文件,进行相应修改。主要修改以下内容:你的雷达的型号,以及端口号等

lidar_type: RSHELIOS #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS msop_port: 1990 #Msop port of lidar difop_port: 1991 #Difop port of lidar

我的完整配置文件如下:

common: msg_source: 1 #0: not use Lidar #1: packet message comes from online Lidar #2: packet message comes from ROS or ROS2 #3: packet message comes from Pcap file #4: packet message comes from Protobuf-UDP #5: point cloud comes from Protobuf-UDP send_packet_ros: false #true: Send packets through ROS or ROS2(Used to record packet) send_point_cloud_ros: true #true: Send point cloud through ROS or ROS2 send_packet_proto: false #true: Send packets through Protobuf-UDP send_point_cloud_proto: false #true: Send point cloud through Protobuf-UDP pcap_path: /home/robosense/lidar.pcap #The path of pcap file lidar: - driver: lidar_type: RSHELIOS #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS frame_id: /rslidar #Frame id of message msop_port: 1990 #Msop port of lidar difop_port: 1991 #Difop port of lidar start_angle: 0 #Start angle of point cloud end_angle: 360 #End angle of point cloud min_distance: 0.2 #Minimum distance of point cloud max_distance: 200 #Maximum distance of point cloud use_lidar_clock: false #True--Use the lidar clock as the message timestamp #False-- Use the system clock as the timestamp ros: ros_recv_packet_topic: /rslidar_packets #Topic used to receive lidar packets from ROS ros_send_packet_topic: /rslidar_packets #Topic used to send lidar packets through ROS ros_send_point_cloud_topic: /rslidar_points #Topic used to send point cloud through ROS proto: point_cloud_recv_port: 60021 #Port number used for receiving point cloud point_cloud_send_port: 60021 #Port number which the point cloud will be send to msop_recv_port: 60022 #Port number used for receiving lidar msop packets msop_send_port: 60022 #Port number which the msop packets will be send to difop_recv_port: 60023 #Port number used for receiving lidar difop packets difop_send_port: 60023 #Port number which the difop packets will be send to point_cloud_send_ip: 127.0.0.1 #Ip address which the point cloud will be send to packet_send_ip: 127.0.0.1 #Ip address which the lidar packets will be send to 2.3.4、执行以下命令即可编译&运行 catkin_make source devel/setup.bash roslaunch rslidar_sdk start.launch

这时候,工程开始运行,会自动打开rviz,

2.3.5、通过“rviz”来观看点云

点云学习笔记4——robosense激光雷达使用教程_数据_04可以修改点云的显示状态与大小。点云学习笔记4——robosense激光雷达使用教程_离线_05这时候我们就可以看到点云数据了。点云学习笔记4——robosense激光雷达使用教程_sed_06

俯视图:点云学习笔记4——robosense激光雷达使用教程_数据_07

2.3.6、参数说明

雷达有一些参数需要设置,需要通过launch文件进行传递。

model: 指定雷达类型。目前三个选项 RS32、RS16 和RSBPEARL,分别指32线、16线、补盲雷达 device_ip:雷达ip msop_port:MSOP数据包接收端口 difop_port:DIFOP数据包接收端口 lidar_param_path:雷达标定参数文件存放位置 pcap:要解析的pcap包存放路径。注意指定此参数,则驱动就不会接收从雷达发出的数据 curves_path:指定反射率标定文件curves.csv完整路径。针对intensity_mode为1和2。 angle_path:指定角度标定文件angle.csv完整路径 channel_path:指定距离补偿文件ChannelNum.csv完整路径。一般使用默认全0参数即可。 curves_rate_path:指定反射率洗漱标定文件CurveRate.csv完整路径。一般不需要 max_distance:指定点云距离上限 min_distance:指定点云距离下限 resolution_type:指定雷达距离解析分辨类型,“0.5cm” 和 “1cm” 二选一 intensity_mode:指定雷达反射率模式,分别为1,2,3 三选一 cut_angle:采用角度分帧方式 三、录制点云离线包:

robosense官方:如何录制与解码rosbag

修改cfg文件

common: msg_source: 1 send_packet_ros: true send_point_cloud_ros: true send_packet_proto: false send_point_cloud_proto: false pcap_path: /home/robosense/lidar.pcap

为了记录雷达packet, 需要设置 send_packet_ros = true。

首先在线连接雷达并将点云发送至ROS。如果对此不太了解, 请先阅读 在线连接雷达并发送点云到ROS 。

现在可以直接录制点云消息,这样在离线播包时不需要再另外运行驱动程序解包。但这种方法会导致录制的包非常大。 因此,通常建议记录雷达packet数据,而不是记录点云数据。录制命令:先运行雷达驱动

roslaunch rslidar_sdk start.launch

然后打开新窗口,进行录制。

osbag record /rslidar_packets /rslidar_packets_difop -O bag 四、 离线解码

修改cfg文件

common: msg_source: 2 send_packet_ros: false send_point_cloud_ros: true send_packet_proto: false send_point_cloud_proto: false pcap_path: /home/robosense/bag.bag # bag文件路径及名称

由于数据包消息来自ROS,因此设置 msg_source = 2 。

将点云发送到ROS,因此设置 send_point_cloud_ros = true。

先运行雷达驱动

roslaunch rslidar_sdk start.launch

然后打开新窗口,进行播放bag文件。

rosbag play bag.bag

播放成功:点云学习笔记4——robosense激光雷达使用教程_离线_08

五、参考:

1、https://github.com/RoboSense-LiDAR/rslidar_sdk2、robosense激光雷达使用及适配autoware



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3